/*
 * Created by SharpDevelop.
 * user: Robertux
 * Date: 15/03/2008
 * Time: 15:32
 * 
 * 
 */

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections.Generic;
using DataLayer;
using Inventador;

namespace WinApp
{
	/// <summary>
	/// Description of frmProductos.
	/// </summary>
	public partial class frmProductos : Form
	{
		private BaseDatos bdatos;
		private List<Producto> productos;
		private DataGridViewCellStyle estiloFaltaProd;
		private DataGridViewCellStyle estiloCantProd;
		
		public frmProductos()
		{
			InitializeComponent();
		}
		
		public frmProductos(BaseDatos bdatosExterna): this()
		{
			this.bdatos = bdatosExterna;
			this.productos = Producto.GetList(this.bdatos, "id != 0");
			this.estiloFaltaProd = new DataGridViewCellStyle();
			this.estiloCantProd = new DataGridViewCellStyle();
			this.estiloFaltaProd.ForeColor = Color.Red;
			this.estiloCantProd.ForeColor = Color.Red;
			this.estiloCantProd.Font = new Font(this.grdProductos.Font, FontStyle.Bold);
			this.RellenarGrid();
			this.gridManager1.AutoGenerarColumnas();
			if(this.productos.Count <= 1)
				this.button4.Enabled = false;
		}
		
		public void RellenarGrid()
		{
			this.grdProductos.Rows.Clear();
			foreach(Producto prod in this.productos)
			{
				this.grdProductos.Rows.Add(new object[]{prod.Id, prod.fkTipoProducto.Nombre, prod.fkMarcaProducto.Nombre, prod.ExistenciaActual, prod.ExistenciaMinima, prod.Descripcion});
				if(prod.ExistenciaActual < prod.ExistenciaMinima)
				{
					foreach(DataGridViewCell celda in this.grdProductos.Rows[this.grdProductos.Rows.Count - 1].Cells)
						celda.Style = this.estiloFaltaProd;
					this.grdProductos.Rows[this.grdProductos.Rows.Count - 1].Cells[3].Style = this.estiloCantProd;
					this.grdProductos.Rows[this.grdProductos.Rows.Count - 1].Cells[4].Style = this.estiloCantProd;
				}
			}
		}
		
		void Button1Click(object sender, EventArgs e)
		{
			this.Close();
		}
		
		void Button4Click(object sender, EventArgs e)
		{
			if(MessageBox.Show("Esta seguro que desea borrar este producto?", "Confirmacion", MessageBoxButtons.YesNo) == DialogResult.Yes)
			{
				this.productos[this.grdProductos.SelectedRows[0].Index].Delete(this.bdatos);
				this.productos.RemoveAt(this.grdProductos.SelectedRows[0].Index);
				this.RellenarGrid();
			}
		}
		
		void Button2Click(object sender, EventArgs e)
		{
			frmAddEditProductos frmadd = new frmAddEditProductos(this.bdatos, null);
			frmadd.ShowDialog(this);
			if(frmadd.Result == DialogResult.OK)
			{
				this.productos = Producto.GetList(this.bdatos, "id != 0");
				this.RellenarGrid();
			}
		}
		
		void Button3Click(object sender, EventArgs e)
		{
			frmAddEditProductos frmedit = new frmAddEditProductos(this.bdatos, this.productos[this.grdProductos.SelectedRows[0].Index]);
			frmedit.ShowDialog(this);
			if(frmedit.Result == DialogResult.OK)
			{
				this.productos = Producto.GetList(this.bdatos, "id != 0");
				this.RellenarGrid();
			}
		}
		
		void Button5Click(object sender, EventArgs e)
		{
			frmDetallesProducto frmdetalles = new frmDetallesProducto(this.bdatos, this.productos[this.grdProductos.SelectedRows[0].Index]);
			frmdetalles.ShowDialog(this);
			frmdetalles.Dispose();
		}
	}
}
